---
title: "CLI install & configure"
---

We recommend you install Elementary CLI using one of the following methods:

<Snippet file="install-cli.mdx" />

## Install from source

Install Elementary directly from GitHub source:

```shell
git clone https://github.com/elementary-data/elementary
pip install ./elementary
```

### Validate installation

To validate the installation and get usage instructions for the CLI run:

```shell
edr --help
```

## CLI configuration

Elementary CLI requires a connection profile to connect to DWH. Additional configuration is made on `config.yml`:

- **Required:** `HOME_DIR/.dbt/profiles.yml` - Connection details to the data warehouse, in the format of dbt connection profile named `elementary`.
- **Optional:** `HOME_DIR/.edr/config.yml` - Elementary configuration.

(These default paths and names may be changed using the [CLI options](/oss/cli-commands#cli-advanced-options)).

<Accordion title="How to create 'profiles.yml'?">
  <Snippet file="add-connection-profile.mdx" />
</Accordion>

<Accordion title="dbt-core user? You already have profiles.yml">
If you are a dbt user, you already have a `profiles.yml` file that you can use. The default path of the dbt profiles file is `~/.dbt/` directory.

- For further details, please refer to [dbt's documentation](https://docs.getdbt.com/reference/profiles.yml) about the file.
- Note: in BigQuery we require 'location' ([details](https://cloud.google.com/bigquery/docs/locations)), and in dbt it is optional.

</Accordion>

<Snippet file="faq/question-connection-profile.mdx" />
<Snippet file="faq/question-profile-permissions.mdx" />

<Accordion title="How to create 'config.yml'?">

Only create this file if you need to use it for configuration, it is not mandatory.  
Create a new directory and yml file under: HOME_DIR/.edr/config.yml

Here is the format of the yml itself:

```yml config.yml
# alerts destination #
slack:
  notification_webhook: <your_slack_webhook_url>
  # optional #
  workflows: false
```

</Accordion>

<Accordion title="Anonymous tracking">

We want to keep building and improving, and for that, we need to understand how users work with Elementary (and data is fun!). For that we added an anonymous tracking of events using [Posthog](https://posthog.com/) (open-source product analytics, highly recommended).

We only track start, end, platform, number of queries and the size of the graph. No credentials, queries content, table names or anything private (not now and not ever).

By default this completely anonymous tracking is turned on. You can opt-out at any time by adding the following to your `config.yml` file:

```shell
anonymous_usage_tracking: False
```

</Accordion>

---

<Accordion title="Have a question?">

We are available on [Slack](https://elementary-data.com/community), reach out for any kind of help!

</Accordion>
